上篇簡述完基本型別後,此篇將簡述JavaScript值的物件型別以及巢狀意思。
以下舉例,現在要幫水果行建立庫存表,因此我們需先建立變數儲存這些『水果』資料。
let fruit1 ='香蕉';
let fruit2 = '蘋果';
let fruit3 ='葡萄';
上方這麼做有兩個問題
1. 效率較低,就庫存表需求來說,只需要列出所有水果,不需要分開宣告變數再儲存資料
2. 若後續要調用資料出來,還需要記得變數名稱 (蘋果資料儲存在fruit2而非fruit3)
此時就適合使用Array儲存資料,其用法為使用[]將資料儲存在一起。
let fruits = ['香蕉', '蘋果' , '葡萄'];
然而此時會產生一個新問題,要如何調用Array裡頭的資料?
Array本身是一個『有序』的資料型態,序(index)為排序的意思,其從0開始計算。
因此若我們要調用『香蕉』這個數據,
console.log (fruits[0]) // 香蕉
由此Array既可以解決宣告不同變數導致的效率問題,也能透過『序』來快速調用資料。
以下補充幾點Array特徵
let fruits = [['香蕉', '蘋果' , '葡萄'],[10, 15, 17]];
console.log(fruits[0]) //['香蕉', '蘋果', '葡萄']
console.log(fruits[0][0]) // 香蕉
let fruits = ['香蕉', '蘋果' , '葡萄']
fruits[0] = '蓮霧' // 將fruits Array第0個元素,重新賦值成'蓮霧'
console.log(fruits) // ['蓮霧', '蘋果', '葡萄']
在上方Nested array中,第0個元素是第1個Array整體,若要調用元素本身需要再使用[]
let fruits = {
fruit: ['香蕉', '蘋果', '葡萄'],
fruitStock: [10, 15, 17]
};
Object數據可透過兩種方法調用,點運算子(.)或是使用[],以下舉例。
console.log(fruits.fruit1Stock) // 10
console.log(fruits['fruit1Stock']) // 10 (需注意使用字串形式)
Object中的數據也可和Array一樣後續更改。
fruits['fruitStock'] = 1; // 修改fruits Object中的fruitStock屬性數據為1
console.log(fruits) // {fruit : ['香蕉', '蘋果', '葡萄'],fruitStock : 1}
console.log(new Date());
//顯示現在時間: Fri Sep 08 2023 18:20:24 GMT+0800 (Taipei Standard Time)
console.log(new Date('December 25 2023'));
//Mon Dec 25 2023 00:00:00 GMT+0800 (Taipei Standard Time)
console.log(new Date(2023, 11, 25));
// Mon Dec 25 2023 00:00:00 GMT+0800 (Taipei Standard Time)
// 需注意月份會從0開始計算,因此輸入11結果會為December